00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 if ( !defined("PATH_TO_ROOT") ) {
00025 define( "PATH_TO_ROOT", "../../../" );
00026 }
00027
00028 require_once (PATH_TO_ROOT."ressourcen/classes/class.ressourcendb.inc.php");
00029 require_once (PATH_TO_ROOT."ressourcen/classes/class.filemanger.inc.php");
00030 require_once (PATH_TO_ROOT."ressourcen/classes/filemanager/class.resource.inc.php");
00031 require_once (PATH_TO_ROOT."ressourcen/classes/archiver/interface.resourcevisitor.inc.php");
00032 require_once (PATH_TO_ROOT."user/classes/class.usertools.inc.php");
00033
00034 class Folder extends Resource {
00036 private $parentFolder = null;
00037 private $folders = array();
00038
00039 private $files;
00040
00041 private static $iconTypes = array();
00042 private $layerType;
00043 private $folderType;
00044 private $folderState;
00045 private $studentWrite;
00046 private $fileCounter = 0;
00047 private $linkCounter = 0;
00048
00049 public function __construct( $fileID = 0 ) {
00050 $this->fileID = $fileID;
00051
00052 global $VISIBLE_TXT, $VISIBLE_ICONS;
00053
00054 $VISIBLE_TXT = array();
00055 $VISIBLE_ICONS = array();
00056 $imgFolder = PATH_TO_ROOT.'ressourcen/icons/';
00057 $VISIBLE_TXT[1] = " für alle sichtbar";
00058 $VISIBLE_TXT[2] = " nur für Dozenten & Tutoren sichtbar";
00059 $VISIBLE_TXT[3] = " nur für Dozenten sichtbar";
00060
00061 $VISIBLE_ICONS[1] = "<img src='".$imgFolder."edittypes/view_Student.gif' alt='visibilityAll Symbol' />";
00062 $VISIBLE_ICONS[2] = "<img src='".$imgFolder."edittypes/view_noStudent.gif' alt='visibilityNoStudents Symbol' />";
00063 $VISIBLE_ICONS[3] = "<img src='".$imgFolder."edittypes/view_Dozent.gif' alt='visibilityDocentsOnly Symbol' />";
00064
00065
00066 if ( empty(self::$iconTypes)) self::$iconTypes = array(0 => 'ricon_rootFolder', 1 => 'ricon_folderOpen', 2 => 'ricon_folderClosed', 3 => 'ricon_join', 4 => 'ricon_joinBottom', 5 => 'ricon_line', 6 => 'ricon_minus', 7 => 'ricon_minusBottom', 8 => 'ricon_plus', 9 => 'ricon_plusBottom', 10 => 'ricon_empty', 11 => 'ricon_foyerFolder', 12 => 'ricon_mostpopular', 13 => 'ricon_mostrecent');
00067
00068 }
00069
00070 public function setFolderState( $folderState ) {
00071 $this->folderState = $folderState;
00072 }
00073
00074 public function setLayerType( $layerType ) {
00075 $this->layerType = $layerType;
00076 }
00077
00078 public function setStudentWrite( $studentWrite ) {
00079 $this->studentWrite = $studentWrite;
00080 }
00081
00082 public function setFolderType( $folderType ) {
00083 $this->folderType = $folderType;
00084 }
00085
00086 public function getFolderState() {
00087 return $this->folderState;
00088 }
00089
00090 public function setParentFolder( $folder ) {
00091 $this->parentFolder = $folder;
00092 }
00093
00102 public function getFiles() {
00103 if (is_null($this->files)) {
00104 global $resDB;
00105
00106 $desc = (isset($_GET['direction']) && $_GET['direction'] == 'DESC');
00107 $SQL_sort = 'create_time';
00108
00109 if ( $this->fileID > 0 ) {
00110 $this->files = $resDB->getFiles( $this->fileID, $SQL_sort, $desc );
00111 } elseif ($this->fileID == "-1") {
00112 $this->files = $resDB->getMostRatedFiles();
00113 } elseif ($this->fileID == "-2") {
00114 $this->files = $resDB->getNewestFiles();
00115 }
00116 }
00117
00118 return $this->files;
00119 }
00120
00121 public function setFiles( $files ) {
00122 $this->files = $files;
00123 }
00124
00133 public function getSubFolders() {
00134 $this->loadSubFolder();
00135
00136 return $this->folders;
00137 }
00138
00139 public function loadSubFolder() {
00140 global $resDB;
00141 if (empty($this->folders)) $this->folders = $resDB->getSubFolder( $this );
00142 }
00143
00144 public function isActiveFolder() {
00145 return (!is_null($this->fileManager) && $this->fileManager->getActiveFolder() == $this->fileID );
00146 }
00147
00148 public function getFolderCount( $recursive = true ) {
00149 $this->loadSubFolder();
00150 $count = count($this->folders);
00151 if ( $recursive ) {
00152 foreach ( $this->folders as $folder ) {
00153 $count += $folder->getFolderCount(true);
00154 }
00155 }
00156 return $count;
00157 }
00158
00159 private function isLastFolder( $fileID = null ) {
00160 if (is_null( $fileID ) ) {
00161 if (is_a( $this->parentFolder, "Folder")) {
00162 return $this->parentFolder->isLastFolder( $this->fileID );
00163 }
00164 } else {
00165 $lastFolder = end($this->folders);
00166 if ( is_a( $lastFolder, "Folder" )) {
00167 return ( $lastFolder->getID() == $fileID );
00168 }
00169 }
00170 return false;
00171 }
00172
00173 public function printSubFolder( $layer = '' ) {
00174 global $db;
00175 $this->loadSubFolder();
00176 $lineLayer = $layer."<img src='".PATH_TO_ROOT."images/transparent.gif' alt='lineLayer' class='".self::$iconTypes[5]."'/>";
00177 $emptyLayer = $layer."<img src='".PATH_TO_ROOT."images/transparent.gif' alt='emptyLayer' class='".self::$iconTypes[10]."'/>";
00178 $newLayer = $lineLayer;
00179 $lastFolder = $this->isLastFolder();
00180 if ($lastFolder) {
00181 $newLayer = $emptyLayer;
00182 $plus = 9;
00183 $minus = 7;
00184 $join = 4;
00185 $bottom = true;
00186 } else {
00187 $plus = 8;
00188 $minus = 6;
00189 $join = 3;
00190 $bottom = false;
00191 }
00192 if ( is_null( $this->parentFolder ) ) {
00193 $newLayer = "";
00194 }
00195 $gesamtReturn = "";
00196 $subReturn = "";
00197
00198 foreach($this->folders as $key => $subFolder) {
00199 $subReturn .= $subFolder->printSubFolder( $newLayer );
00200 }
00201
00202 if ( !is_null($this->parentFolder) ) {
00203 if ( $this->fileManager->getAction() == 'foldOut' && $this->fileManager->getActionID() == $this->fileID ) {
00204 RessourcenDB::saveFolderState( $this );
00205 }
00206 if ($this->folderState) {
00207 $this->layerType = $minus;
00208 if (!$subReturn) $this->layerType = $join;
00209 } else {
00210 $this->layerType = $plus;
00211 if (!$subReturn) $this->layerType = $join;
00212 $subReturn = false;
00213 }
00214
00215 $this->folderType = 1;
00216 if ($this->courseID == 0) $this->folderType = 11;
00217 else if ( $this->parentFolder->getID() == 0 ) $this->folderType = 0;
00218 $gesamtReturn.= $this->drawFolder($layer) .$subReturn;
00219 } else {
00220 $gesamtReturn = $subReturn;
00221 }
00222
00223 return $gesamtReturn;
00224 }
00225
00226 public function drawFolder($layer = '', $showCount = true) {
00227 $fileID = $this->fileID;
00228 $folderType = $this->folderType;
00229 $layerType = $this->layerType;
00230 $folderLink = Data::toHTML($this->link, false);
00231
00232
00233 global $resDB;
00234 if ( $showCount ) {
00235 if ($this->folderState) {
00236 $subCount = $resDB->countSubElements( $fileID, false );
00237 } else {
00238 $subCount = $resDB->countSubElements( $fileID, true );
00239 }
00240 $folderLink .= " (".$subCount.")";
00241 }
00242 $folderName = Data::toHTML($this->name, false);
00243
00244 if ($this->isActiveFolder() && $folderType != 0 && $folderType < 11) {
00245 $folderType = 1;
00246 } elseif ($folderType != 0 && $folderType < 11) {
00247 $folderType = 2;
00248 }
00249 $HTML_LAYER = $layer;
00250 $HTML_LAYER_LINK_BEGIN = "<a href='".self::createLink(1, array('action' => 'foldOut', 'actionID' => $fileID)) ."'>";
00251 $HTML_LAYER_IMAGE = "<img src='".PATH_TO_ROOT."images/transparent.gif' alt='layerImage' class='".self::$iconTypes[$layerType]."' />";
00252 $HTML_LAYER_LINK_END = "</a>";
00253 $HTML_FOLDER_LINK_BEGIN = "<a class='folder' href='".self::createLink(1, array('activeFolder' => $fileID, 'action' => '', 'actionID' => '', 'mode' => '')) ."' title=\"".$folderName."\">";
00254 $HTML_FOLDER_IMAGE = "<img src='".PATH_TO_ROOT."images/transparent.gif' alt='Verzeichnis-Symbol' class='".self::$iconTypes[$folderType]."' />".$folderLink;
00255 $HTML_FOLDER_LINK_END = "</a>";
00256
00257 $FOLDER_CLASS = ($this->isActiveFolder() ? "res_folderselect" : "res_folder");
00258
00259 if ($layerType == 3 || $layerType == 4) {
00260 $HTML_LAYER_LINK_BEGIN = "";
00261 $HTML_LAYER_LINK_END = "";
00262 }
00263 $return = "<div class='".$FOLDER_CLASS." nobr'>".$HTML_LAYER.$HTML_LAYER_LINK_BEGIN.$HTML_LAYER_IMAGE.$HTML_LAYER_LINK_END.$HTML_FOLDER_LINK_BEGIN.$HTML_FOLDER_IMAGE.$HTML_FOLDER_LINK_END."</div>";
00264 return $return;
00265 }
00266
00267 private function getUserIcons() {
00268 $action = isset($_GET['action']) ? $_GET['action'] : '';
00269 $actionID = isset($_GET['actionID']) ? $_GET['actionID'] : '';
00270 $course = $_SESSION['course'];
00271 $activeFolder = $_GET['activeFolder'];
00272 global $db, $VISIBLE_TXT, $VISIBLE_ICONS, $settings;
00273 $imgFolder = $this->fileManager->getImgFolder();
00274 $folderUserID = $this->userID;
00275 $folderWrite = $this->studentWrite;
00276
00277
00278 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00279 $EDITFOLDER = "<img title='Ordnereigenschaften editieren' src='".$imgFolder."edittypes/lock_edit.gif' alt='lock edit Symbol'/>";
00280 else $EDITFOLDER = "<img title='Ordnereigenschaften editieren' src='".PATH_TO_ROOT."images/transparent.gif' class='icon_lock_edit' alt='lock edit Symbol'/>";
00281 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00282 $DELETEFOLDER = "<img title='Ordner inklusive Dateien löschen' src='".$imgFolder."edittypes/lock_delete.gif' alt='lock delete Symbol' />";
00283 else $DELETEFOLDER = "<img title='Ordner inklusive Dateien löschen' src='".PATH_TO_ROOT."images/transparent.gif' class='icon_lock_delete' alt='lock delete Symbol' />";
00284
00285 if ($settings['filemanager_recursive']) {
00286 $RECURSIVEDOWNLOADFOLDER = "<img title='Ordner als recursives Archiv herunterladen ' src='".$imgFolder."edittypes/lock_recursive_archive_download.gif' alt='lock recursive download Symbol' />";
00287 } else {
00288 $RECURSIVEDOWNLOADFOLDER = "";
00289 }
00290
00291 $DOWNLOADFOLDER = "<img title='Ordner als Archiv herunterladen ' src='".$imgFolder."edittypes/lock_archive_download.gif' alt='lock download Symbol' />";
00292
00293 $FOLDERVISIBLE = "";
00294
00295 if (($_SESSION['usergroup'] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0) || (isset($folderUserID) && $_SESSION['userid'] == $folderUserID)) && $activeFolder > 0) {
00296 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00297 $EDITFOLDER = "<a title='Ordnereigenschaften verändern' href='./edit.php?editID=".$activeFolder."'><img src='".$imgFolder."edittypes/edit.gif' alt='Bearbeiten' /></a>";
00298 else $EDITFOLDER = "<a title='Ordnereigenschaften verändern' href='./edit.php?editID=".$activeFolder."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_edit_folder' alt='Bearbeiten' /></a>";
00299 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00300 $DELETEFOLDER = "<a title='Ordner löschen' href='".$this->createLink(1, array("action" => "deleteFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/delete.gif' alt='Löschen' /></a>";
00301 else $DELETEFOLDER = "<a title='Ordner löschen' href='".$this->createLink(1, array("action" => "deleteFolder", "actionID" => $activeFolder)) ."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_delete_folder' alt='Löschen' /></a>";
00302
00303
00304 $visibleIcon = "";
00305
00306 if (isset($this->visibleType) && $this->visibleType >= 1 && $this->visibleType <= 3) {
00307 $visibleIcon = $VISIBLE_ICONS[$this->visibleType];
00308 }
00309 $FOLDERVISIBLE = "<a title='Sichtbarkeit dieses Ordners ändern' href='".$this->createLink(0, array('activeFolder' => $activeFolder, 'action' => "setFolderVisibility", "actionID" => $activeFolder)) ."'>".$visibleIcon."</a>";
00310 }
00311 if (($_SESSION['usergroup'] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0)) && $activeFolder > 0) {
00312 if (($folderWrite && !($action == "studentWriteFolder" && $actionID == $activeFolder)) || (!$folderWrite && $action == "studentWriteFolder" && $actionID == $activeFolder)) {
00313 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00314 $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte entziehen' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/student_write.gif' alt='Studenten Schreibrechte entziehen' /></a>";
00315 else $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte entziehen' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_remove_student_write' alt='Studenten Schreibrechte entziehen' /></a>";
00316 } else {
00317 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00318 $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte geben' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/lock_student_write.gif' alt='Studenten Schreibrechte geben' /></a>";
00319 else $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte geben' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_give_student_write' alt='Studenten Schreibrechte geben' /></a>";
00320 }
00321 } else {
00322 if (isset($folderWrite) && $folderWrite) {
00323 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00324 $STUDENTWRITEFOLDER = "<img src='".$imgFolder."edittypes/student_write.gif' title='Studenten haben Schreibrechte' alt='Studenten haben Schreibrechte' />";
00325 else $STUDENTWRITEFOLDER = "<img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_student_write' title='Studenten haben Schreibrechte' alt='Studenten haben Schreibrechte' />";
00326 } else {
00327 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00328 $STUDENTWRITEFOLDER = "<img src='".$imgFolder."edittypes/lock_student_write.gif' title='Studenten haben keine Schreibrechte' alt='Studenten haben keine Schreibrechte' />";
00329 else $STUDENTWRITEFOLDER = "<img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_lock_student_write' title='Studenten haben keine Schreibrechte' alt='Studenten haben keine Schreibrechte' />";
00330 }
00331 }
00332
00333 if (ZipProvider::checkArchiveSize($this, false) <=
00334 $settings['filemanager_archive_max_filesize']*1024*1024) {
00335
00336 if (($this->fileCounter + $this->linkCounter) > 0) {
00337 $DOWNLOADFOLDER = "<a title='Ordner als Archiv herunterladen' href='".$this->createLink(1, array("action" => "downloadFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/archive_download.gif' alt='Herunterladen' /></a>";
00338 }
00339 } else {
00340 $DOWNLOADFOLDER = "<img title='Maximale Dateigröße überschritten' src='".$imgFolder."edittypes/lock_archive_download.gif' alt='lock download Symbol' />";
00341 }
00342
00343 if ($settings['filemanager_recursive'] == true) {
00344
00345 if (ZipProvider::checkArchiveSize($this, true) <=
00346 $settings['filemanager_archive_max_filesize']*1024*1024) {
00347 if ((($this->fileCounter + $this->linkCounter) > 0) || $this->hasFilesInSubFolders()) {
00348 $RECURSIVEDOWNLOADFOLDER = "<a title='Ordner als recursives Archiv herunterladen' href='".$this->createLink(1, array("action" => "recursiveDownloadFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/recursive_archive_download.gif' alt='Recursiv Herunterladen' /></a>";
00349 }
00350 } else {
00351 $RECURSIVEDOWNLOADFOLDER = "<img title='Maximale Dateigröße überschritten' src='".$imgFolder."edittypes/lock_recursive_archive_download.gif' alt='lock recursive download Symbol' />";
00352 }
00353 }
00354
00355 return $DOWNLOADFOLDER . $RECURSIVEDOWNLOADFOLDER . $EDITFOLDER . $FOLDERVISIBLE . $STUDENTWRITEFOLDER . $DELETEFOLDER;
00356 }
00357
00363 public function hasFilesInSubFolders() {
00364 $folders = $this->getSubFolders();
00365
00366 foreach ($folders as $folder) {
00367 if ((count($folder->getFiles()) > 0) ||
00368 $folder->hasFilesInSubFolders()) {
00369 return TRUE;
00370 }
00371 }
00372 }
00373
00379 function showFiles( $statisticView = false ) {
00380 global $db, $settings;
00381
00382
00383 $templateFileList = ( $statisticView ) ?
00384 new Template( PATH_TO_ROOT . "/ressourcen/templates/filelist_statistic.html" )
00385 : new Template( PATH_TO_ROOT . "/ressourcen/templates/filelist.html" );
00386 global $VISIBLE_TXT;
00387 $time = time();
00388 $action = isset($_GET['action']) ? $_GET['action'] : '';
00389 $actionID = isset($_GET['actionID']) ? $_GET['actionID'] : '';
00390 $course = $_SESSION['course'];
00391 $activeFolder = $_GET['activeFolder'];
00392 $imgFolder = $this->fileManager->getImgFolder();
00393 $CELL1 = $CELL = 'tableCellDark';
00394 $CELL2 = 'tableCell';
00395 $COLS = 6;
00396
00397 $VISIBLE = "";
00398
00399
00400 $topOrdner = Data::toHTML($this->link, false);
00401 if ($activeFolder > 0) {
00402 $folderUserID = $this->userID;
00403 $user = $db->get_row("SELECT Vorname, Nachname, gender FROM user WHERE ID='$folderUserID'");
00404 $folderVisible = $this->visibleType;
00405 $folderCreate = Output::echoDate("d.m.Y H:i", (int)$this->createTime);
00406 $folderUser = "";
00407 if ($user != null) {
00408 $courseID = $_SESSION["course"];
00409 $groupName = UserTools::getUserGroupName($folderUserID, $courseID);
00410 $userName = $user->Vorname." ".$user->Nachname . " ($groupName)";
00411 $folderUser = "<a href='".PATH_TO_ROOT."user/homepage.php?user=$folderUserID'>".Data::toHTML($userName, false) ."</a>";
00412 if ($role = RoleArtefacts::getRoleForItem(RESSOURCE, (int)$activeFolder)) {
00413 $folderUser.= " (".$role->getPropertiesLink($role->getName($user->gender)) .")";
00414 }
00415 if ($team = TeamArtefacts::getTeamForItem(RESSOURCE, (int)$activeFolder)) {
00416 $folderUser.= " (".Data::toHTML($team->getName(), false) .")";
00417 }
00418 }
00419 $folderWrite = $this->studentWrite;
00420 }
00421
00422 $desc = (isset($_GET['direction']) && $_GET['direction'] == 'DESC');
00423 $SQL_sort = 'create_time';
00424 if ($action == 'sort' && in_array($actionID, array("name", "size", "create_time", "userID", "counter"))) {
00425 $SQL_sort = $actionID;
00426 }
00427 global $resDB;
00428 if ( $activeFolder > 0 ) {
00429 $this->files = $resDB->getFiles( $activeFolder, $SQL_sort, $desc );
00430 } elseif ($activeFolder == "-1") {
00431 $this->files = $resDB->getMostRatedFiles();
00432 } elseif ($activeFolder == "-2") {
00433 $this->files = $resDB->getNewestFiles();
00434 }
00435
00436
00437 $linkCounter = $fileCounter = $sizeCounter = 0;
00438 foreach($this->files as $file) {
00439 if ( $file->isFileVisible() ) {
00440 if ($file->getType() == 'link') $linkCounter++;
00441 elseif ($file->getType() == 'file') $fileCounter++;
00442 $sizeCounter = $sizeCounter+$file->getSize();
00443 }
00444 }
00445 $sizeCounter = Format::FilesizeStr($sizeCounter);
00446 $this->fileCounter = $fileCounter;
00447 $this->linkCounter = $linkCounter;
00448
00449 if (isset($this->visibleType) && $this->visibleType >= 1 && $this->visibleType <= 3) {
00450 $VISIBLE = $VISIBLE_TXT[$this->visibleType];
00451 }
00452 $folderIcons = ( !$statisticView ) ? $this->getUserIcons() : "";
00453
00454
00455 $FOLDERINFO = ($fileCounter+$linkCounter) ." Element".(($fileCounter+$linkCounter) != 1 ? "e" : "") .", Ordner ".$VISIBLE;
00456
00457 if ($activeFolder > 0 && strlen($folderUser) > 0) {
00458 $SUBHEADER = "<div><small>Erstellt von $folderUser am $folderCreate - $linkCounter Link".($linkCounter == 1 ? "" : "s") .", $fileCounter Datei".($fileCounter == 1 ? "" : "en") .", $sizeCounter total.</small><br/><br/></div>";
00459 } else {
00460 $SUBHEADER = "<div><br/><br/></div>";
00461 }
00462 if ( $this->fileID == $this->fileManager->getActionID() ) $SUBHEADER .= $this->getFolderHTMLOption( $action );
00463
00464 if ($action != "sort") $this->fileManager->runAction($activeFolder, $COLS);
00465
00466
00467
00468 $tableTitles = array( "resource" => "Ressource",
00469 "action" => "Aktion",
00470 "size" => "Größe",
00471 "created" => "Erstellt",
00472 "owner" => "Besitzer",
00473 "clicks" => "Klicks" );
00474 if ($activeFolder < 0) {
00475
00476 $tableHead = $tableTitles;
00477 } else {
00478 $newDirection = ($desc ? "ASC" : "DESC");
00479
00480 $tableHead["resource"] = "<a href='".$this->createLink(1, array('action' => 'sort', 'actionID' => 'name', 'direction' => $newDirection)) ."'>".$tableTitles["resource"]."</a>";
00481 $tableHead["action"] = $tableTitles["action"];
00482 $tableHead["size"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "size", 'direction' => $newDirection)) ."'>".$tableTitles["size"]."</a>";
00483 $tableHead["created"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "create_time", 'direction' => $newDirection)) ."'>".$tableTitles["created"]."</a>";
00484 $tableHead["owner"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "userID", 'direction' => $newDirection)) ."'>".$tableTitles["owner"]."</a>";
00485 $tableHead["clicks"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "counter", 'direction' => $newDirection)) ."'>".$tableTitles["clicks"]."</a>";
00486 }
00487
00488 $fileListEntriesHTML = "";
00489 if ($this->files) {
00490 $FILELISTINFO = "";
00491 foreach($this->files as $file) {
00492
00493 $CELL = ($CELL == $CELL1 ? $CELL2 : $CELL1);
00494 $fileListEntriesHTML .= $file->getHTMLString( $statisticView, $CELL );
00495 if ($action != "sort") $this->fileManager->runAction($file->getID(), $COLS);
00496 }
00497
00498 } else {
00499 $FILELISTINFO = "<div style='text-align: center'><br/><br/>Keine Dateien vorhanden.<br/><br/></div>";
00500 }
00501 eval ( $templateFileList->getTemplate() );
00502 }
00503
00504 private function getFolderHTMLOption( $option ) {
00505 if ($option == "deleteFolder") {
00506 $template = new Template(PATH_TO_ROOT . "/ressourcen/templates/deletefolder.html");
00507 $folderID = $this->fileManager->getActiveFolder();
00508 $html = "";
00509 eval ( $template->getTemplate( "html" ) );
00510 return $html;
00511 }
00512
00513 if ( $option == "setFolderVisibility" ) {
00514 return "<div class='res_file-extra'>"
00515 ."<a href='".$this->createLink(0, array('activeFolder' => $this->fileManager->getActiveFolder(), "action" => "setRessourceVisibility", 'actionID' => $this->fileManager->getActionID(), 'mode' => 1))
00516 ."'>Nur Ordner</a> "."<a href='".$this->createLink(0, array('activeFolder' => $this->fileManager->getActiveFolder(), "action" => "setRessourceVisibility", 'actionID' => $this->fileManager->getActionID(), 'mode' => 2)) .""
00517 ."'>Inhalt (rekursiv)</a> "."<a href='".$this->createLink(0, array('activeFolder' => $this->fileManager->getActiveFolder(), "action" => "setRessourceVisibility", 'actionID' => $this->fileManager->getActionID(), 'mode' => 3)) .""
00518 ."'>Ordner und Inhalt (rekursiv)</a> "."<a href='".$this->createLink(0, array("activeFolder" => $this->fileManager->getActiveFolder())) ."'>Abbrechen</a>"."<span class='res_file-extra'>".Utilities::helpCode(701) ."</span>"."</div>";
00519 }
00520
00521 if ( $option == "setRessourceVisibility" ) {
00522 return $this->getRessourceVisibilityHTML();
00523 }
00524 }
00525
00533 public function archiverAccept(ResourceVisitor $visitor, $parentPath = "/") {
00534 assert($visitor instanceof ResourceVisitor);
00535
00536 return $visitor->visit($this, $parentPath);
00537 }
00538 }